SMT solver 指“SMT 求解器”,一种自动化推理工具,用来判断在给定背景理论(如整数算术、位向量、数组、未解释函数等)下,逻辑公式是否可满足(是否存在使其为真的赋值/模型),并常用于程序验证、模型检查、约束求解与自动测试生成等领域。SMT 中的 SMT 是 Satisfiability Modulo Theories(“在特定理论下的可满足性”)的缩写。
An SMT solver can check whether these constraints are consistent.
SMT 求解器可以检查这些约束是否彼此一致。
The verifier encodes the program’s safety properties as SMT formulas and asks an SMT solver to find a counterexample.
验证器把程序的安全性质编码成 SMT 公式,并让 SMT 求解器寻找反例。
/ˌɛs.ɛmˈtiː ˈsɑːl.vɚ/
SMT 源自计算机科学与数理逻辑术语 Satisfiability Modulo Theories:在传统 SAT(命题可满足性)基础上,引入“理论”(如算术、数组)来表达更丰富的约束。solver 来自动词 solve(解决、求解)加后缀 -er(表示“做某事的人/工具”),合起来就是“用于求解 SMT 问题的工具”。